package vrc

type SaveRoomReq struct {
	Title        string        `json:"title"`
	Template     int           `json:"template"`
	InputSources []InputSource `json:"input_source"`
	Poster       string        `json:"poster"`
	TenantId     string        `json:"tenant_id"`
	ServiceType  string        `json:"service_type"`
	RoomType     string        `json:"room_type"`
	EventId      string        `json:"event_id"`
	Id           int           `json:"id"`
	HostUserId   string        `json:"host_user_id"`
	StartTime    int64         `json:"start_time"`
	ActiveType   string        `json:"activeType"`
	MaxUserNum   int           `json:"max_user_num"`
}

type SaveRoomRes struct {
	EventId string `json:"event_id"`
	Id      int    `json:"id"`
}

type SaveRoomRes1 struct {
	EventId string `json:"room_id"`
	Id      int    `json:"id"`
}

type InputSource struct {
	Name        string `json:"name"`
	Protocol    string `json:"protocol"`
	Type        string `json:"type"`
	Position    int    `json:"position"`
	PushAddress string `json:"pushAddress"`
	PullAddress string `json:"pullAddress"`
}

type CreateRoomRes struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    Data   `json:"data"`
}

type Data struct {
	EventId string `json:"event_id"`
}

type StartRoomReq struct {
	TenantId string `json:"tenant_id"`
	EventId  string `json:"event_id"`
}

type StopRoomReq struct {
	TenantId string `json:"tenant_id"`
	EventId  string `json:"event_id"`
}

type DeleteRoomReq struct {
	TenantId string `json:"tenant_id"`
	EventId  string `json:"event_id"`
}

type T struct {
	Title       string `json:"title"`
	MediaType   string `json:"media_type"`
	HostUserId  string `json:"host_user_id"`
	MaxUserNum  int    `json:"max_user_num"`
	ImEngine    string `json:"im_engine"`
	MergeEngine string `json:"merge_engine"`
	VideoInfo   struct {
		Codec         string `json:"codec"`
		MaxResolution string `json:"max_resolution"`
		MaxBitrate    int    `json:"max_bitrate"`
		MaxFrame      int    `json:"max_frame"`
	} `json:"video_info"`
	AudioInfo struct {
		Codec           string `json:"codec"`
		MaxBitrate      int    `json:"max_bitrate"`
		Denoise         string `json:"denoise"`
		MaxSamplingRate int    `json:"max_sampling_rate"`
	} `json:"audio_info"`
	AecEnable  bool `json:"aec_enable"`
	CameraInfo struct {
		HostCameraEnable  bool `json:"host_camera_enable"`
		GuestCameraEnable bool `json:"guest_camera_enable"`
	} `json:"camera_info"`
	MicrophoneInfo struct {
		HostMicrophoneEnable  bool `json:"host_microphone_enable"`
		GuestMicrophoneEnable bool `json:"guest_microphone_enable"`
	} `json:"microphone_info"`
	InadvanceTime int    `json:"inadvance_time"`
	KickoutMode   string `json:"kickout_mode"`
	ShareMode     string `json:"share_mode"`
	NodeProvider  string `json:"node_provider"`
	TenantId      string `json:"tenant_id"`
	ServiceType   string `json:"service_type"`
	OpenStatus    string `json:"open_status"`
	StartTime     int    `json:"start_time"`
	EndTime       int    `json:"end_time"`
	RoomType      string `json:"room_type"`
	RoomMode      string `json:"room_mode"`
	Mode          string `json:"mode"`
}
